package com.functest.internal

import org.apache.log4j.AppenderSkeleton
import org.apache.log4j.spi.LoggingEvent

/**
 * Created with IntelliJ IDEA.
 * User: MalyutinAA
 * Date: 22.04.13
 * Time: 15:59<BR/>
 * Класс для сохранения сообщений логирования, путем записи их в список.
 */
class TestLoggerAppender extends AppenderSkeleton {
    private static List<LoggingEvent> eventList = new ArrayList<LoggingEvent>();

    /**
     * Добавляет сообщение логирования в список, как новый элемент.
     */
    private void saveEvent(LoggingEvent event){
        eventList.add(event)
    }

    /**
     * Возвращает список соощений логирования.
     */
    public static List<LoggingEvent> getList(){
        eventList.asImmutable()
    }

    /**
     * Очищает список сообщений логирования.
     */
    public static void clear(){
        eventList.clear()
    }

    @Override
    protected void append(LoggingEvent loggingEvent) {
        //println(loggingEvent.getLevel())
        //println(loggingEvent.getMessage())
        saveEvent(loggingEvent)
        //To change body of implemented methods use File | Settings | File Templates.
    }

    @Override
    void close() {
        //To change body of implemented methods use File | Settings | File Templates.
    }

    @Override
    boolean requiresLayout() {
        return false  //To change body of implemented methods use File | Settings | File Templates.
    }
}
